<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>

<head>
<title>Table 3: Subattributes of 'infilter' and 'outfilter'</title>
</head>

<body bgcolor="white">

&nbsp;<b>Table 3:  Subattributes of <code>infilter</code> and <code>outfilter</code></b><br>
<table align="center" border="1">

<tr>
<td align="center" valign="center">
<b>Attribute</b>
</td>
<td align="center" valign="center">
<b>Description</b>
</td>
</tr>

<tr>
<td align="left" valign="center">
<code>clause</code>
</td>
<td align="left" valign="center">
A part of a policy rule which (1) defines a predicate for matching routes and
(2) defines an action which permits or denies a route and optionally performs
attribute manipulation.  A single clause itself acts as a filter, though
multiple clauses can be combined to define more complex filters.  Any number of
this attribute may be present within an <code>infilter</code> or
<code>outfilter</code> attribute, including zero.  If there are no instances of
this attribute present, no routes can possibly be matched and thus all routes
will be denied.  Each <code>clause</code> attribute must have exactly one of
each of the <code>precedence</code>, <code>predicate</code>, and
<code>action</code> subattributes.
</td>
</tr>

<tr>
<td align="left" valign="center">
<code>clause.precedence</code>
</td>
<td align="left" valign="center">
The precedence of this clause with respect to all other clauses in the same
filter.  If there are multiple instances of <code>clause</code>, they must have
precedence values which begin with <code>1</code> and increase incrementally by
one.  When a route is examined for filtering, the predicate of each clause is
applied to it, in order of precedence, to see if it matches.  If a match is
found, all further clauses are ignored.  If all clauses are checked and no
matches are found, the route is denied.  (Thus it follows that if there are no
clauses, the route is denied.)  Exactly one of this attribute must be present
within the <code>clause</code> attribute.  The actual <code>clause</code>
attributes need not appear in any particular order in the DML code itself.
</td>
</tr>

<tr>
<td align="left" valign="center">
<code>clause.predicate</code>
</td>
<td align="left" valign="center">
A predicate which can be applied to a route.  The predicate may be composed of
any number of smaller "atomic" predicates which apply to individual attributes
of the route.  The route must satisfy every atom in order to satisfy the full
predicate.  If there are no atoms, then all routes satisfy the predicate.
Exactly one of this attribute must be present within the <code>clause</code>
attribute.
</td>
</tr>

<tr>
<td align="left" valign="center">
<code>clause.predicate.atom</code>
</td>
<td align="left" valign="center">
A predicate which can be applied to an attribute of a route.  The predicate
indicates which attribute it applies to, and includes a regular expression for
matching a canonical string form of that attribute.  Any number of this
attribute may be present within the <code>clause.predicate</code> attribute.
Refer to <a href="table4.html">Table&nbsp;4</a> for usage notes.
</td>
</tr>

<tr>
<td align="left" valign="center">
<code>clause.predicate.atom.attribute</code>
</td>
<td align="left" valign="center">
A route attribute (which is its destination address or a path attribute) to
which the atomic predicate applies.  Exactly one of this attribute must be
present within the <code>clause.predicate.atom</code> attribute.  The most
common values for this attribute are <code>nhi_path</code> (which is like AS
path except that it uses the NHI equivalents of AS numbers) and
<code>nlri_nhi</code> (the NHI equivalent of the destination IP prefix).  Refer
to <a href="table4.html">Table&nbsp;4</a> for usage notes.
</td>
</tr>

<tr>
<td align="left" valign="center">
<code>clause.predicate.atom.matcher</code>
</td>
<td align="left" valign="center">
An expression for matching a canonical string form of an attribute.  It is
often, though not always, a regular expression.  Exactly one of this attribute
must be present within the <code>clause.predicate.atom</code> attribute.  Refer
to <a href="table4.html">Table&nbsp;4</a> for usage notes.
</td>
</tr>

<tr>
<td align="left" valign="center">
<code>clause.action</code>
</td>
<td align="left" valign="center">
An action to be applied to a route.  The action must contain a primary
action, which is to either permit or deny a route.  If the primary
action is to permit, then it may also define any number of additional
atomic actions for performing attribute manipulation on the route.
Exactly one of this attribute must be present within the
<code>clause</code> attribute.
</td>
</tr>

<tr>
<td align="left" valign="center">
<code>clause.action.primary</code>
</td>
<td align="left" valign="center">
The primary action to apply to a route (whether to permit or deny it).  It's
value must be either <code>permit</code> or <code>deny</code>.  Exactly one of
this attribute must be present within the <code>clause.action</code> attribute.
</td>
</tr>

<tr>
<td align="left" valign="center">
<code>clause.action.atom</code>
</td>
<td align="left" valign="center">
An action which can be applied to the path attribute of a route.  The action
indicates which path attribute it applies to, the type of action that is to be
taken, and any number of values which are to be used during the application of
the action.  The meaning of each value depends upon the type of the action.
Any number of this attribute may be present within the
<code>clause.action</code> attribute, unless the value of
<code>clause.action.primary</code> is <code>deny</code>, in which case this
attribute <i>must</i> be omitted.
</td>
</tr>

<tr>
<td align="left" valign="center">
<code>clause.action.atom.attribute</code>
</td>
<td align="left" valign="center">
A path attribute to which the atomic action applies.  Exactly one of this
attribute must be present within the <code>clause.action.atom</code> attribute.
The most common values of this attribute are <code>nhi_path</code> and
<code>local_pref</code>.
</td>
</tr>

<tr>
<td align="left" valign="center">
<code>clause.action.atom.type</code>
</td>
<td align="left" valign="center">
A type of action to be taken when modifying the path attribute of a
route.  Exactly one of this attribute must be present within the
<code>clause.action.atom</code> attribute.  Typical values of this
attribute are <code>set</code> (for setting the LocalPref, for
example) and <code>prepend</code> (for prepending an NHI address to
the NHI path, for example).
</td>
</tr>

<tr>
<td align="left" valign="center">
<code>clause.action.atom.value</code>
</td>
<td align="left" valign="center">
A value to be used when applying an action to a path attribute.  The meaning of
the value depends upon the type of the action specified in
<code>clause.action.atom.type</code>.  For example, when prepending to the NHI
path, there should be exactly one <code>value</code> attribute, and its value
should be an NHI address.  When setting the LocalPref, there should be exactly
one <code>value</code> attribute, and its value should be a positive integer.
Any number of this attribute, including zero, may be present within the
<code>clause.action.atom</code> attribute.
</td>
</tr>

</table>


<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>


</body>
</html>
